#!/bin/bash

# echo "hello world!"

# A=1
# echo "A的内容是$A"

# echo "请重新为A输入内容"
# read -r A
# echo "A重新输入之后的内容是$A"

# B=2
# echo "B的值为$B"
# unset B
# if [ -z "$B" ] 
# then
#     echo "B在unset之后的内容已被清除"
# fi

# C=`ls`
# echo "执行ls之后的内容为"
# echo "$C"

# readonly D=10
# echo "D的内容为$D"
# D=100
# echo "在给D赋值后D的内容为$D"

# export XP="芙芙"

# temp="阿巴阿巴"
# echo '单引号的变量不会被解释,例如temp=$temp'
# echo "双引号的变量会被解释,例如temp=$temp"

# E=$#
# F=$*
# echo "传进来的参数有$E个"
# echo "传进来的参数内容为$F"

# G=$1
# H=$2
# echo "传进来的第一个参数为$G"
# echo "传进来的第二个参数为$H"

# I=$?
# echo "命令的结束状态为$I"

# J=$0
# echo "当前执行的进程号为$J"

# K=$$
# echo "当前进程的进程号为$K"

# echo "今天的日期是 `date`"

# echo -e "加了反斜杠n的'你好'为\n你\n好"

# echo -e "加了反斜杠r的'你好'为\n你\r好"

# echo -e "加了反斜杠b的'你好'为\n你\b好"

# echo -e "加了反斜杠t的'你好'为\n你\t好"

# str1="abc"
# str2="xyz"
# echo "$str1$str2"

# [ -r $sad ]
# echo 上一条判断的状态为$?
# [ -r $A ]
# echo 上一条判断的状态为$?
# [ $str1 != $str2 ]
# echo 上一条判断的状态为$?
# test -z $str1
# echo 上一条判断的状态为$?
# test -n $str2
# echo 上一条判断的状态为$?

# if [ -r $sad ] 
# then
#     echo "sad没有内容"
# fi

# if [ $str1 = $str2 ] 
# then
#     echo str1等于str2
# else
#     echo str1不等于str2
# fi

# str3="12123sdadasd"
# echo str3的内容为$str3
# echo str3的长度为${#str3}
# echo 从str3的下标为五的字符开始打印:${str3:5}
# echo 从str3的下标为五的字符开始截取三个字符打印:${str3:5:3}
# echo 从str3的内容中找到第一个匹配的字符进行替换:${str3/da/ce}
# echo 从str3的内容中找到所有匹配的字符进行替换:${str3//da/ce}

# L=5
# M=10
# if [ $L -eq $M ]
# then
#     echo L和M相等
# else
#     echo L和M不相等
# fi
# if [ $L -gt $M ]
# then
#     echo L大于M
# fi
# if [ $L -lt $M ] 
# then
#     echo L小于M
# fi

# echo N不存在打印后面的-1:${N:--1}
# echo L存在打印L的值:${L:--1}
# echo 通过:=可以对不存在的变量定义并赋值比如N=${N:=4}

# if test $L -lt $M && test $L -gt 10 
# then
#     echo 双重判断成功
# else
#     echo 双层判断失败
# fi

# if [ $L -gt 5 ] || [ $M -gt 10 ]
# then
#     echo 两个条件其中一个达成
# else
#     echo 两个条件都不达成
# fi

# if [[ $A -lt $M ]]
# then
#     echo if判断成功
# elif [[ $A -gt $M ]]
# then
#     echo elseif判断成功  
# else
#     echo 都没判断成功
# fi


# read -p "请输入文件名:" fileName

# if [ -e $fileName ]
# then
#     if [ -d $fileName -o -s $fileName ]
#     then
#         echo "为目录文件或则文件为空"
#     else
#         cat $fileName
#     fi
# else
#     touch $fileName
#     echo "hello file" >> $fileName
#     cat $fileName
# fi

# read -p 请输入一个一到五的数: num

# case $num in
#     1) echo 输入的是1
#     ;;
#     2) echo 输入的是2
#     ;;
#     3) echo 输入的是3
#     ;;
#     4|5) echo 输入的是4 or echo 输入的是5
#     ;;
#     *) echo 你怎么能输入其他数呢,我都没那么多条件进行判断
#     ;;
# esac

# declare -i num1=0
# for((i=0;i<101;i++));
# do
#     num1=$num1+$i
# done
# echo num1的值是$num1

# declare -i num2=0
# declare -i i=0
# for i in 1 2 3 4 5 6
# do
#     num2=$num2+$i
# done
# echo num2的值是$num2

# filename=`ls`
# for file in $filename
# do
#     if [ -f $file ]
#     then
#         echo "$file是普通文件"
#     elif [ -d $file ]
#     then
#         echo "$file是文件夹"
#     fi
# done

# declare -i i=0
# declare -i num3=0
# while [ $i -lt 101 ] 
# do
#     num3=$num3+$i
#     i=$i+1    
# done
# echo num3的值是$num3


# declare -i ii=0
# declare -i num4=0
# until [ $ii -gt 100 ] 
# do
#     num4=$num4+$ii
#     ii=$ii+1
# done
# echo num4的值是$num4

declare -i temp=0
function add()
{
    for i in $*
    do
        temp=$temp+$i
    done
    
    return $temp
}


#'$?'是前一个指令的运行状态值,为0-255,可接收函数返回值,但不适用于运算
add -1 -1
echo 结果为$?
echo temp的值为$temp
